#ifndef LUA_UNITY_BUILDING
#define LUA_UNITY_BUILDING
#include <luaUnity/config.h>
#include <luaState/luaState.h>
#include <vector>
#include <string>
#include <list>
#include <complex>
#include <mutex>
#include <boost/filesystem.hpp>
#include <boost/function.hpp>
#include <sol/table.hpp>
#include <appendix/point.h>

namespace lua{
struct lua_State;
};
namespace lua{
	LUA_UNITY_EXPORT_API
		std::string get_full_path( const std::string& name );
	LUA_UNITY_EXPORT_API
		std::string parent_path( const std::string& name );
	LUA_UNITY_EXPORT_API
		void current_path( const std::string& name );
	LUA_UNITY_EXPORT_API
		std::string file_name( const std::string& name );
	LUA_UNITY_EXPORT_API
		std::string extension( const std::string& name );
	LUA_UNITY_EXPORT_API
		bool remove( const std::string& name );
	LUA_UNITY_EXPORT_API
		std::string utf8_to_local( const std::string& name );
	LUA_UNITY_EXPORT_API
		std::string local_to_utf8( const std::string& name );
	LUA_UNITY_EXPORT_API
		bool mkdir( const std::string& name );
	LUA_UNITY_EXPORT_API
		bool put_env( const std::string& name ,  const std::string& env);
	LUA_UNITY_EXPORT_API
		bool python( const std::string& name);
	LUA_UNITY_EXPORT_API
		sol::table file2strtable( const std::string& pstr, const std::string& dele ,sol::this_state L);
	LUA_UNITY_EXPORT_API
		sol::table file2numtable( const std::string& pstr, const std::string& dele ,sol::this_state L);
	LUA_UNITY_EXPORT_API
		sol::table file2numtable( const std::string& pstr, const std::string& dele , int prel, int postl, sol::this_state L);

};

#endif
